Consulta de Guías Docentes



Academic Year/course: 2023/24

439 - Bachelor's Degree in Informatics Engineering

30230 - Language Processors


Syllabus Information

Academic year:
2023/24
Subject:
30230 - Language Processors
Faculty / School:
110 - Escuela de Ingeniería y Arquitectura
Degree:
439 - Bachelor's Degree in Informatics Engineering
ECTS:
6.0
Year:
3
Semester:
Second semester
Subject type:
---
Module:
---

1. General information

 

The subject will focus on the study of the inner workings of language processors. The knowledge acquired in previous subjects related to languages and grammars will be used to develop a compiler for a basic imperative language. The student will end up building a translator that includes lexical, syntactic and semantic analysis of the language, as well as the generation of the corresponding code for its subsequent execution. The techniques and tools studied are applicable to other application domains, such as the transformation of data specified by means of a formal language, the visualization of web pages (html) or virtual reality models (vrml), or natural language processing , for example.

The development of the subject is aligned with some of the Sustainable Development Goals (SDGs) of the 2030 Agenda (SDGs), mainly with Goal 8 and Target 8.4.



2. Learning results

 

Upon completion of the subject, the student will be able to:

  • Understand the inner workings of compilers and be able to use them effectively.

  • Be able to apply the acquired knowledge of languages, grammars and automata to the specification and implementation of the lexical and syntactic analysis aspects of a translator.

  • Learn the methods and techniques related to code generation and optimization.

  • Master the use of specific tools for the construction of translators.

 

3. Syllabus

 

Classroom face-to-face learning activities will focus on the study of the following topics:

  • Topic 1: Introduction. Translation and language processing.

  • Topic 2: Lexical analysis. Automata and regular expressions. Implementation of a lexical analyzer.

  • Topic 3: Syntactic analysis. Context-free grammars. Implementation of a syntactic parser.

  • Topic 4: Semantic analysis. Table of symbols. Implementation of a semantic analyzer.

  • Topic 5: Execution environments.

  • Topic 6: Code generation and optimization.

Laboratory sessions will be conducted with the final objective of developing a basic but complete compiler for an imperative language.

 

4. Academic activities

 

The calendar of the subject will be defined by the center in the academic calendar of the corresponding year. The academic activities are organized according to the following distribution of activities:

  • Lectures: 30 hours
  • Practice classes: 24 hours
  • Theoretical/practical evaluation activity: 3 hours
  • Practical evaluation activity: 3 hours
  • Student work: 90 hours (approx.)

The detailed calendar of activities will be established on the basis of the calendar approved by the University for the

 

5. Assessment system

 

The following assessment activities will be the following:

  • Continuous assessment (first call):  It will be based on the delivery of the practices and the development of a theoretical-practical test . It is mandatory to present each practice on the established dates. In the theoretical-practical test it will be necessary to solve a set of problems posed on the compiler developed in the laboratory sessions.

  • Global assessment (first and second call): It will be based on the delivery of a compiler developed according to the guidelines of the script that will be provided to the student and a defense of the work before the teachers, as well as a theoretical-practical test, this one of analogous characteristics to the one proposed for the continuous assessment.

 

In the final grade the weight of the part corresponding to the laboratory practices will be 60%, while the corresponding to the theoretical-practical test will be 40%. In order to pass the subject it is necessary to obtain a minimum score of 5 points out of 10 in each of the practices. In case of not reaching the minimum established in any of the parts, the final grade will be the minimum between 4 and the weighted average of the two parts considered.




Curso Académico: 2023/24

439 - Graduado en Ingeniería Informática

30230 - Procesadores de lenguajes


Información del Plan Docente

Año académico:
2023/24
Asignatura:
30230 - Procesadores de lenguajes
Centro académico:
110 - Escuela de Ingeniería y Arquitectura
Titulación:
439 - Graduado en Ingeniería Informática
Créditos:
6.0
Curso:
3
Periodo de impartición:
Segundo semestre
Clase de asignatura:
---
Materia:
---

1. Información básica de la asignatura

La asignatura se centrará en el estudio del funcionamiento interno de los procesadores de lenguajes. Se utilizarán los conocimientos adquiridos en materias previas relacionadas con los lenguajes y gramáticas para desarrollar un compilador de un lenguaje imperativo básico. El alumno terminará construyendo un traductor que abarque el análisis léxico, sintáctico y semántico del lenguaje, así como la generación de código correspondiente para su posterior ejecución. Las técnicas y herramientas estudiadas son aplicables a otros dominios de aplicación, como la transformación de datos especificados mediante un lenguaje formal, la visualización de páginas web (html) o de modelos de realidad virtual (vrml), o el procesamiento de lenguaje natural, por ejemplo.

El desarrollo de la asignatura se alinea con algunos de los Objetivos de Desarrollo Sostenible (ODS) de la Agenda 2030
(ODS), principalmente con el Objetivo 8 y la Meta 8.4.



2. Resultados de aprendizaje

El estudiante, tras superar esta asignatura:

  • Comprenderá el funcionamiento interno de los compiladores y será capaz de utilizarlos de manera eficaz.
  • Será capaz de aplicar los conocimientos adquiridos sobre lenguajes, gramáticas y autómatas para la especificación e implementación de los aspectos del análisis léxico y sintáctico de un traductor.
  • Conocerá los métodos y técnicas relacionados con la generación y optimización de código.
  • Dominará el uso de herramientas específicas para la construcción de traductores.

3. Programa de la asignatura

Las actividades de aprendizaje presenciales en el aula se centrarán en el estudio de los siguientes temas:

  • Tema 1: Introducción. Traducción y procesamiento de lenguajes.
  • Tema 2: Análisis léxico. Autómatas y expresiones regulares. Implementación de un analizador léxico.
  • Tema 3: Análisis sintáctico. Gramáticas libres de contexto. Implementación de un analizador
    sintáctico.
  • Tema 4: Análisis semántico. Tabla de símbolos. Implementación de un analizador semántico.
  • Tema 5: Entornos de ejecución.
  • Tema 6: Generación y optimización de código.

Se realizarán sesiones de laboratorio cuyo objetivo final es el desarrollo de un compilador básico, pero completo, para un lenguaje imperativo.

4. Actividades académicas

El calendario de la asignatura será definido por el centro en el calendario académico del curso correspondiente. Las actividades académicas se organización de acuerdo a la siguiente distribución de actividades:

  • Clases magistrales: 30 horas
  • Clases de prácticas: 24 horas
  • Actividad de evaluación teórico/práctica: 3 horas
  • Actividad de evaluación práctica: 3 horas
  • Trabajo del estudiante: 90 horas (aprox.)

El calendario detallado de actividades se establecerá a partir del aprobado por la Universidad para el curso académico
correspondiente. Las fechas de exámenes y de entrega de trabajos se anunciarán con suficiente antelación durante lel desarrollo del curso.

5. Sistema de evaluación

Las siguientes actividades de evaluación serán las siguientes:

  • Evaluación continua (primera convocatoria):  Se basará en la entrega de las prácticas y el desarrollo de una prueba teórico-práctica. Es obligatorio presentar cada práctica en las fechas establecida. En la prueba teórico-práctica habrá que resolver un conjunto de problemas planteados sobre el compilador desarrollado en las sesiones de laboratorio.
  • Evaluación global (primera y segunda convocatorias): Se basará en la entrega de un compilador desarrollado
    según las pautas del guión que se proporcionará al estudiante y una defensa del trabajo ante los profesores, así como una prueba teórico-práctica, esta de características análogas a la planteada para la evaluación continua.

En la calificación final el peso de la parte correspondiente a las prácticas de laboratorio será del 60%, mientras que el
correspondiente a la prueba teórico-práctica será del 40%. Para superar la asignatura es necesario obtener un mínimo de 5
puntos sobre 10 en la evaluación de las prácticas y un mínimo de 4 puntos sobre 10 en la evaluación de la prueba
teórico-práctica. En caso de no alcanzar el mínimo establecido en alguna de las partes, la calificación final será el mínimo
entre 4 y la media ponderada de las dos partes consideradas.